package org.infodavid.common.model;

import org.infodavid.common.model.behaviors.IApprovable;
import org.infodavid.common.persistence.ICommented;
import org.infodavid.common.persistence.IDataObject;

/**
 * The Interface IUserConnection.
 */
public interface IUserConnection extends ICommented, IDataObject<Long>, IApprovable {

  /** The ID. */
  String ID = "userConnectionKey";

  /** The INITIATOR. */
  String INITIATOR = "initiator";

  /** The RECIPIENT. */
  String RECIPIENT = "recipient";

  /**
   * Gets the initiator user.
   * @return the user
   */
  IUser getInitiator();

  /**
   * Gets the connection as user.
   * @return the connection as user
   */
  IUser getRecipient();

  /**
   * Sets the initiator user.
   * @param value the user
   */
  void setInitiator(IUser value);

  /**
   * Sets the connection as user.
   * @param value the connection as user
   */
  void setRecipient(IUser value);
}
